home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / perl / 5.10.0 / Encode / JP / H2Z.pm next >
Encoding:
Perl POD Document  |  2009-06-26  |  5.0 KB  |  177 lines

  1. #
  2. # $Id: H2Z.pm,v 2.2 2006/06/03 20:28:48 dankogai Exp $
  3. #
  4.  
  5. package Encode::JP::H2Z;
  6.  
  7. use strict;
  8. use warnings;
  9.  
  10. our $RCSID = q$Id: H2Z.pm,v 2.2 2006/06/03 20:28:48 dankogai Exp $;
  11. our $VERSION = do { my @r = ( q$Revision: 2.2 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
  12.  
  13. use Encode::CJKConstants qw(:all);
  14.  
  15. use vars qw(%_D2Z  $_PAT_D2Z
  16.   %_Z2D  $_PAT_Z2D
  17.   %_H2Z  $_PAT_H2Z
  18.   %_Z2H  $_PAT_Z2H);
  19.  
  20. %_H2Z = (
  21.     "\x8e\xa1" => "\xa1\xa3",    #°£
  22.     "\x8e\xa2" => "\xa1\xd6",    #°÷
  23.     "\x8e\xa3" => "\xa1\xd7",    #°◊
  24.     "\x8e\xa4" => "\xa1\xa2",    #°¢
  25.     "\x8e\xa5" => "\xa1\xa6",    #°¶
  26.     "\x8e\xa6" => "\xa5\xf2",    #•Ú
  27.     "\x8e\xa7" => "\xa5\xa1",    #•°
  28.     "\x8e\xa8" => "\xa5\xa3",    #•£
  29.     "\x8e\xa9" => "\xa5\xa5",    #••
  30.     "\x8e\xaa" => "\xa5\xa7",    #•ß
  31.     "\x8e\xab" => "\xa5\xa9",    #•©
  32.     "\x8e\xac" => "\xa5\xe3",    #•„
  33.     "\x8e\xad" => "\xa5\xe5",    #•Â
  34.     "\x8e\xae" => "\xa5\xe7",    #•Á
  35.     "\x8e\xaf" => "\xa5\xc3",    #•√
  36.     "\x8e\xb0" => "\xa1\xbc",    #°º
  37.     "\x8e\xb1" => "\xa5\xa2",    #•¢
  38.     "\x8e\xb2" => "\xa5\xa4",    #•§
  39.     "\x8e\xb3" => "\xa5\xa6",    #•¶
  40.     "\x8e\xb4" => "\xa5\xa8",    #•®
  41.     "\x8e\xb5" => "\xa5\xaa",    #•™
  42.     "\x8e\xb6" => "\xa5\xab",    #•´
  43.     "\x8e\xb7" => "\xa5\xad",    #•≠
  44.     "\x8e\xb8" => "\xa5\xaf",    #•Ø
  45.     "\x8e\xb9" => "\xa5\xb1",    #•±
  46.     "\x8e\xba" => "\xa5\xb3",    #•≥
  47.     "\x8e\xbb" => "\xa5\xb5",    #•µ
  48.     "\x8e\xbc" => "\xa5\xb7",    #•∑
  49.     "\x8e\xbd" => "\xa5\xb9",    #•π
  50.     "\x8e\xbe" => "\xa5\xbb",    #•ª
  51.     "\x8e\xbf" => "\xa5\xbd",    #•Ω
  52.     "\x8e\xc0" => "\xa5\xbf",    #•ø
  53.     "\x8e\xc1" => "\xa5\xc1",    #•¡
  54.     "\x8e\xc2" => "\xa5\xc4",    #•ƒ
  55.     "\x8e\xc3" => "\xa5\xc6",    #•Δ
  56.     "\x8e\xc4" => "\xa5\xc8",    #•»
  57.     "\x8e\xc5" => "\xa5\xca",    #• 
  58.     "\x8e\xc6" => "\xa5\xcb",    #•À
  59.     "\x8e\xc7" => "\xa5\xcc",    #•Ã
  60.     "\x8e\xc8" => "\xa5\xcd",    #•Õ
  61.     "\x8e\xc9" => "\xa5\xce",    #•Œ
  62.     "\x8e\xca" => "\xa5\xcf",    #•œ
  63.     "\x8e\xcb" => "\xa5\xd2",    #•“
  64.     "\x8e\xcc" => "\xa5\xd5",    #•’
  65.     "\x8e\xcd" => "\xa5\xd8",    #•ÿ
  66.     "\x8e\xce" => "\xa5\xdb",    #•€
  67.     "\x8e\xcf" => "\xa5\xde",    #•fi
  68.     "\x8e\xd0" => "\xa5\xdf",    #•fl
  69.     "\x8e\xd1" => "\xa5\xe0",    #•‡
  70.     "\x8e\xd2" => "\xa5\xe1",    #•·
  71.     "\x8e\xd3" => "\xa5\xe2",    #•‚
  72.     "\x8e\xd4" => "\xa5\xe4",    #•‰
  73.     "\x8e\xd5" => "\xa5\xe6",    #•Ê
  74.     "\x8e\xd6" => "\xa5\xe8",    #•Ë
  75.     "\x8e\xd7" => "\xa5\xe9",    #•È
  76.     "\x8e\xd8" => "\xa5\xea",    #•Í
  77.     "\x8e\xd9" => "\xa5\xeb",    #•Î
  78.     "\x8e\xda" => "\xa5\xec",    #•Ï
  79.     "\x8e\xdb" => "\xa5\xed",    #•Ì
  80.     "\x8e\xdc" => "\xa5\xef",    #•Ô
  81.     "\x8e\xdd" => "\xa5\xf3",    #•Û
  82.     "\x8e\xde" => "\xa1\xab",    #°´
  83.     "\x8e\xdf" => "\xa1\xac",    #°¨
  84. );
  85.  
  86. %_D2Z = (
  87.     "\x8e\xb6\x8e\xde" => "\xa5\xac",    #•¨
  88.     "\x8e\xb7\x8e\xde" => "\xa5\xae",    #•Æ
  89.     "\x8e\xb8\x8e\xde" => "\xa5\xb0",    #•∞
  90.     "\x8e\xb9\x8e\xde" => "\xa5\xb2",    #•≤
  91.     "\x8e\xba\x8e\xde" => "\xa5\xb4",    #•¥
  92.     "\x8e\xbb\x8e\xde" => "\xa5\xb6",    #•∂
  93.     "\x8e\xbc\x8e\xde" => "\xa5\xb8",    #•∏
  94.     "\x8e\xbd\x8e\xde" => "\xa5\xba",    #•∫
  95.     "\x8e\xbe\x8e\xde" => "\xa5\xbc",    #•º
  96.     "\x8e\xbf\x8e\xde" => "\xa5\xbe",    #•æ
  97.     "\x8e\xc0\x8e\xde" => "\xa5\xc0",    #•¿
  98.     "\x8e\xc1\x8e\xde" => "\xa5\xc2",    #•¬
  99.     "\x8e\xc2\x8e\xde" => "\xa5\xc5",    #•≈
  100.     "\x8e\xc3\x8e\xde" => "\xa5\xc7",    #•«
  101.     "\x8e\xc4\x8e\xde" => "\xa5\xc9",    #•…
  102.     "\x8e\xca\x8e\xde" => "\xa5\xd0",    #•–
  103.     "\x8e\xcb\x8e\xde" => "\xa5\xd3",    #•”
  104.     "\x8e\xcc\x8e\xde" => "\xa5\xd6",    #•÷
  105.     "\x8e\xcd\x8e\xde" => "\xa5\xd9",    #•Ÿ
  106.     "\x8e\xce\x8e\xde" => "\xa5\xdc",    #•‹
  107.     "\x8e\xca\x8e\xdf" => "\xa5\xd1",    #•—
  108.     "\x8e\xcb\x8e\xdf" => "\xa5\xd4",    #•‘
  109.     "\x8e\xcc\x8e\xdf" => "\xa5\xd7",    #•◊
  110.     "\x8e\xcd\x8e\xdf" => "\xa5\xda",    #•⁄
  111.     "\x8e\xce\x8e\xdf" => "\xa5\xdd",    #•›
  112.     "\x8e\xb3\x8e\xde" => "\xa5\xf4",    #•Ù
  113. );
  114.  
  115. # init only once;
  116.  
  117. #$_PAT_D2Z = join("|", keys %_D2Z);
  118. #$_PAT_H2Z = join("|", keys %_H2Z);
  119.  
  120. %_Z2H = reverse %_H2Z;
  121. %_Z2D = reverse %_D2Z;
  122.  
  123. #$_PAT_Z2H    = join("|", keys %_Z2H);
  124. #$_PAT_Z2D    = join("|", keys %_Z2D);
  125.  
  126. sub h2z {
  127.     no warnings qw(uninitialized);
  128.     my $r_str          = shift;
  129.     my ($keep_dakuten) = @_;
  130.     my $n              = 0;
  131.     unless ($keep_dakuten) {
  132.         $n = (
  133.             $$r_str =~ s(
  134.                ($RE{EUC_KANA}
  135.                 (?:\x8e[\xde\xdf])?)
  136.                ){
  137.           my $str = $1;
  138.           $_D2Z{$str} || $_H2Z{$str} || 
  139.               # in case dakuten and handakuten are side-by-side!
  140.               $_H2Z{substr($str,0,2)} . $_H2Z{substr($str,2,2)};
  141.           }eogx
  142.         );
  143.     }
  144.     else {
  145.         $n = (
  146.             $$r_str =~ s(
  147.                ($RE{EUC_KANA})
  148.                ){
  149.           $_H2Z{$1};
  150.           }eogx
  151.         );
  152.     }
  153.     $n;
  154. }
  155.  
  156. sub z2h {
  157.     my $r_str = shift;
  158.     my $n     = (
  159.         $$r_str =~ s(
  160.               ($RE{EUC_C}|$RE{EUC_0212}|$RE{EUC_KANA})
  161.               ){
  162.          $_Z2D{$1} || $_Z2H{$1} || $1;
  163.          }eogx
  164.     );
  165.     $n;
  166. }
  167.  
  168. 1;
  169. __END__
  170.  
  171.  
  172. =head1 NAME
  173.  
  174. Encode::JP::H2Z -- internally used by Encode::JP::2022_JP*
  175.  
  176. =cut
  177.